package com.yukefms.rule.interfaces;

import com.yukefms.engine.running.MatchedStatus;
import com.yukefms.engine.running.RunningContext;
import com.yukefms.jointpoint.BodyPointCloud;
import com.yukefms.rule.formula.interfaces.DynamicBAFormula;
import com.yukefms.rule.formula.interfaces.StageBAFormula;
import com.yukefms.rule.formula.interfaces.StaticBAFormula;
import com.yukefms.rule.state.BARuleState;

import java.util.List;

/**
 * @description
 *
 * the interface extends BARule with Stage
 *
 * @author pg
 * @date 2021-8-20
 */
public interface BAStageRule extends BARule {
    StageBAFormula currentStage() ;
    boolean hasNextStage() ;
    void toNextStage() ;
    BAStageRule addMoreStage(StageBAFormula formula) ;
    String getInvariantDescription() ;
    String getInvariantViolatedDesc() ;
    String getViolatedDesc(String actionName) ;



}
